/**
 * 
 */
package metier;

/**
 * @author Quipu-Team
 * 
 */
public abstract class Enseignant {

	// ATTRIBUTS
	private String nom = "";
	private String prenom = "";
	private StatutEnseignant statut = null;
    private int id=0;
	
    // CONSTRUCTEUR
	/**
	 * @param nom
	 * @param prenom
	 * @param statut
	 */
	public Enseignant(String nom, String prenom, StatutEnseignant statut) {
		super();
		this.nom = nom;
		this.prenom = prenom;
		this.statut = statut;
	}

        public Enseignant(){
            
        }

	// ACCESSEURS
	/**
	 * @return the nom
	 */
	public String getNom() {
		return nom;
	}

	/**
	 * @param nom
	 *            the nom to set
	 */
	public void setNom(String nom) {
		this.nom = nom;
	}

	/**
	 * @return the prenom
	 */
	public String getPrenom() {
		return prenom;
	}

	/**
	 * @param prenom
	 *            the prenom to set
	 */
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}

	/**
	 * @return the statut
	 */
	public StatutEnseignant getStatut() {
		return statut;
	}

	/**
	 * @param statut
	 *            the statut to set
	 */
	public void setStatut(StatutEnseignant statut) {
		this.statut = statut;
	}
	
	/**
	 * 
	 * @param id
	 */
	protected void setId(int id) {
		this.id = id;
	}
	
	/**
	 * 
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	
	// METHODES ABSTRAITES
	/**
	 * @throws ExceptionMetier 
	 * M�thode qui permet d'ins�rer l'objet dans le syst�me de stockage
	 */
	public abstract void insert() throws ExceptionMetier;
	
	/**
	 * M�thode qui permet de mettre � jour l'objet dans le syst�me de stockage
	 * @throws ExceptionMetier 
	 */
	public abstract void update() throws ExceptionMetier;
	
	/**
	 * @throws ExceptionMetier 
	 * M�thode qui permet de supprimer l'objet dans le syst�me de stockage
	 */
	public abstract void delete() throws ExceptionMetier;

	/**
	 * @param id
	 * m�thode permettant de charger un enseignant
	 */
	public abstract void load(int id)throws ExceptionMetier ;


	
}
